package main

import (
	"fmt"
	"unsafe"
)

//全局变量
var m1 = 10.9
var (
	m2 = "netty"
	m3 = 666
)

func main() {
	//局部变量
	//第一种:指定类型并且赋值
	var num1 int = 18
	fmt.Println(num1)

	//第二种:指定类型,不赋值,使用默认值
	var num2 int
	fmt.Println(num2)

	//第三种:如果没有写变量的类型,根据 = 后面的值进行判断变量的类型(自动类型推断)
	var num3 = "gin"
	fmt.Println(num3)

	//第四种: 省略var,注意 := 就不能省略为 = 了(用 := 替换了 var =)
	num4 := 18
	fmt.Println(num4)

	fmt.Println("-------- -------- -------- -------- --------")

	var n1, n2, n3 int
	fmt.Println(n1, n2, n3)

	var n4, n5, n6 = 10, "soul", 5.5
	fmt.Println(n4, n5, n6)

	n7, n8, n9 := 10, 6.9, 0
	fmt.Println(n7, n8, n9)

	fmt.Println(m1, m2, m3)
	fmt.Printf("m1的类型是: %T", m1)
	fmt.Println(", m1的大小是: ", unsafe.Sizeof(m1))

	var age byte = 18
	fmt.Println("年龄是:", age)

}
